package com.joizhang.seckill.api.service;

import com.joizhang.seckill.api.redis.GoodsKey;
import com.joizhang.seckill.api.vo.GoodsVo;
import com.joizhang.seckill.api.vo.SecKillGoodsVo;

import java.util.List;

public interface GoodsService {

    Boolean initRedis();

    /**
     * 根据id查询指定商品
     * @param goodsId id
     */
    GoodsVo getGoodsVoByGoodsId(Long goodsId);

    /**
     * 根据商品id查询促销商品信息
     * @param goodsId 商品id
     */
    SecKillGoodsVo getSecKillGoodsVoByGoodsId(Long goodsId);

    /**
     * 查询商品列表
     */
    List<GoodsVo> getGoodsVos();

    /**
     * 查询促销商品信息
     */
    List<SecKillGoodsVo> getSecKillGoodsVos(List<GoodsVo> goodsVoList);

    List<Long> getGoodsIdsFromCache();

    SecKillGoodsVo getGoodsDetailFromCache(Long goodsId);

    void setStock(GoodsKey goodsStock, String key, Integer stockCount);

}
